package com.micro.ai.template.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.micro.ai.template.entity.TemplateStatistic;

import java.util.Map;

/**
 * 模板统计Service
 *
 * @author micro-ai
 * @since 0.0.1
 */
public interface TemplateStatisticService extends IService<TemplateStatistic> {

    /**
     * 获取或创建模板统计
     *
     * @param templateId 模板ID
     * @return 统计记录
     */
    TemplateStatistic getOrCreateStatistic(String templateId);

    /**
     * 增加使用次数
     *
     * @param templateId 模板ID
     */
    void incrementUsageCount(String templateId);

    /**
     * 增加成功次数
     *
     * @param templateId 模板ID
     */
    void incrementSuccessCount(String templateId);

    /**
     * 增加失败次数
     *
     * @param templateId 模板ID
     */
    void incrementFailureCount(String templateId);

    /**
     * 更新平均评分
     *
     * @param templateId 模板ID
     * @param rating 新评分
     */
    void updateAverageRating(String templateId, double rating);

    /**
     * 获取模板统计信息
     *
     * @param templateId 模板ID
     * @return 统计信息
     */
    Map<String, Object> getStatistics(String templateId);
}

